//package com.gonsin.easycount.plugin.impl;
//
//import com.gonsin.easycount.plugin.OuterCache;
//import org.springframework.data.redis.core.RedisTemplate;
//
//import java.lang.reflect.Type;
//import java.util.Collection;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
///**
// * 根据redisTemplate的缓存实现
// */
//public class LocalCacheRedisTemplate implements OuterCache {
//
//    private RedisTemplate redisTemplate;
//
//    public LocalCacheRedisTemplate(RedisTemplate redisTemplate) {
//        this.redisTemplate = redisTemplate;
//    }
//
//    @Override
//    public void cleanSet(Collection<String> setNames) {
//        redisTemplate.delete(setNames);
//    }
//
//    @Override
//    public void cleanSet(String setName) {
//        redisTemplate.delete(setName);
//    }
//
//    @Override
//    public void cleanHash(String hashName) {
//        redisTemplate.delete(hashName);
//    }
//
//    @Override
//    public void putHash(String hashName, String key, Object value) {
//        redisTemplate.opsForHash().put(hashName, key, value);
//    }
//
//    @Override
//    public void addSet(String setName, Object value) {
//        redisTemplate.opsForSet().add(setName, value);
//    }
//
//    @Override
//    public void addList(String listName, Object value) {
//        redisTemplate.opsForList().rightPush(listName, value);
//    }
//
//    @Override
//    public <T> T getHash(String hashName, String key, Type clazz) {
//        return (T) redisTemplate.opsForHash().get(hashName, key);
//    }
//
//    @Override
//    public <T> Map<String, T> getHash(String hashName, Type clazz) {
//        return redisTemplate.opsForHash().entries(hashName);
//    }
//
//    @Override
//    public void removeSet(String setName, String key) {
//        redisTemplate.opsForSet().remove(setName, key);
//    }
//
//    @Override
//    public long sizeOfHash(String hashName) {
//        return redisTemplate.opsForHash().size(hashName);
//    }
//
//    @Override
//    public long sizeOfSet(String setName) {
//        return redisTemplate.opsForSet().size(setName);
//    }
//
//    @Override
//    public <T> Set<T> getSet(String setName, Class<T> clazz) {
//        return redisTemplate.opsForSet().members(setName);
//    }
//
//    @Override
//    public boolean containHash(String hashName) {
//        Boolean b = redisTemplate.hasKey(hashName);
//        return b == null ? false : b;
//    }
//
//    @Override
//    public <T> T get(String key, Class<T> clazz) {
//        return (T) redisTemplate.opsForValue().get(key);
//    }
//
//    @Override
//    public <T> void put(String key, T t) {
//        redisTemplate.opsForValue().set(key, t);
//    }
//
//    @Override
//    public void cleanValue(String key) {
//        redisTemplate.delete(key);
//    }
//
//    @Override
//    public <T> List<T> getList(String key, Type clazz) {
//        long length = redisTemplate.opsForList().size(key);
//        return redisTemplate.opsForList().range(key, 0, length - 1);
//    }
//
//    @Override
//    public void cleanList(String key) {
//        redisTemplate.delete(key);
//    }
//}
